/*
 * IStep.java
 *
 * Created on 16 de abril de 2006, 11:54
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package usecase;

/**
 *
 * Interfaz that describes the methods available to any class that
 * describe a step of a use case
 *
 * @author Rincew
 */
public interface IStep {
    
    //--- Constant ---------------
    
    public final static int PRE = 0;
    public final static int INV = 1;
    public final static int MAIN = 2;
    
    //----------------------------
    
    public String getId();
    public void setId(String id);
    
    public String getDescription();
    public void setDescription(String d);
    
    /** 
     * Returns who perfoms the step. It may be the system or an
     *external actor.
     **/
    public String getParticipant();
    public void setParticipant(String p);


    /** Returns true if the step ends the use case */
    public boolean isFinal();
    
    /** This is unuseful due we have several iterator to
     * traverse all main step, all pre steps and all inv steps **/
    public int getType();
    public void setType(int type);
    
    public String getCondition();
    public void setCondition(String c);
    
    public String getAction();
    public void setAction(String c);
    
    public String getConclution();
    public void setConclution(String c);
    public boolean hasConclution();
    
}
